package eSchool.BL;

import eSchool.DataLayer.DAOFactory;
import eSchool.DataLayer.IAlunoInscritoDAO;
import eSchool.Utils.TextHelper;

public class AlunoInscrito extends Aluno {
 
    @Override
    public void gravaDados() throws Exception {
        DAOFactory factory = DAOFactory.getDAOFactory(DAOFactory.ACCESS);
        IAlunoInscritoDAO alunoDAO = factory.getAlunoInscritoDAO();
        if(alunoDAO.findAlunoInscrito(this.getNumAluno(), this.getCodDisciplina())== null)
            alunoDAO.insertAlunoInscrito(this);
        else
            alunoDAO.updateAlunoInscrito(this);
    }
  
    @Override
    public void leDados() throws Exception {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public void leDados(String numAluno, String codDisciplina) throws Exception {
         DAOFactory factory = DAOFactory.getDAOFactory(DAOFactory.ACCESS);
         IAlunoInscritoDAO alunoInscritoDAO = factory.getAlunoInscritoDAO();           
         alunoInscritoDAO.findAlunoInscrito(this, numAluno, codDisciplina);
    }

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        switch (columnIndex) {
            case 0:
                return ((Integer)ano);
            case 1:
                return ((Integer)semestre);
            case 2:
                return ((Float)nota);
            case 3:
                return ((String)codDisciplina);
            default:
                return null;
       }
    }
    
    @Override
    public int getColumnCount() {
        return 4;
    }

    @Override
    public String getColumnName(int columnIndex) {
        switch (columnIndex) {
            case 0:
                return "ano";
            case 1:
                return "semestre";
            case 2:
                return "nota";
            case 3:
                return "codDisciplina";
            default:
                return null;
       }
    }

    @Override
    public Class<?> getColumnClass(int columnIndex) {
        switch (columnIndex) {
            case 0:
                return ((Integer)ano).getClass();
            case 1:
                return ((Integer)semestre).getClass();
            case 2:
                return ((Float)nota).getClass();
            case 3:
                return codDisciplina.getClass();
            default:
                return null;
       }

    }

    @Override
    public boolean isCellEditable(int rowIndex, int columnIndex) {
        return false;
    }

   
    @Override
    public void setValueAt(Object aValue, int rowIndex, int columnIndex){
        
       switch (columnIndex) {
            case 0:
                ano = ((Integer) aValue).intValue();
                break;
            case 1:
                semestre = ((Integer) aValue).intValue();
                break;
            case 2:
                nota = ((Float) aValue).floatValue();
                break;
            case 3:
                codDisciplina = TextHelper.toString(aValue);
                break;
        }
    }

 
    public String getCodDisciplina() {
        return codDisciplina;
    }

    public void setCodDisciplina(String codDisciplina) {
        this.codDisciplina = codDisciplina;
    }
    
    public AlunoInscrito() {
        super();
    }
    
    public int getAno() {
        return ano;
    }

    public void setAno(int val) {
        this.ano = val;
    }

    public float getNota() {
        return nota;
    }

    public void setNota(float val) {
        this.nota = val;
    }

    public int getSemestre() {
        return semestre;
    }

    public void setSemestre(int val) {
        this.semestre = val;
    }
    
    private int ano;
    private int semestre;
    private float nota;
    private String codDisciplina;

}
